package gestion;

import java.util.ArrayList;
import java.util.Iterator;

import javax.swing.JOptionPane;

import dao.DaoSocio;
import dominio.Socio;
import dominio.Usuario;
import excepciones.DAOExcepcion;

public class Socios {

	private ArrayList<Socio> listaSocios = new ArrayList<Socio>();
	private DaoSocio daoSocio = new DaoSocio();
	
	public boolean comprobarSocio (Socio socio) {
		if (socio.getEsncard().length() != 0
				&& socio.getTiposocio() != -1
				&& socio.getNombre().length() != 0
				&& socio.getApellido1().length() != 0
				&& socio.getSexo() != null
				&& socio.getFechanacimiento() != null
				&& socio.getDnipasaporte().length() != 0
				&& socio.getDireccionvlc().length() != 0
				&& socio.getTelefonoespanol().length() != 0
				&& socio.getTelefonoextranjero().length() != 0
				&& socio.getNacionalidad().length() != 0
				&& socio.getCiudadorigen().length() != 0
				&& socio.getFechaalta() != null
				&& socio.getFechabaja() != null
				&& socio.getUniversidadorigen().length() != 0
				&& socio.getUniversidaddestino().length() != 0
				&& socio.getFacultaddestino().length() != 0
				&& socio.getSeccionesn().length() != 0
				&& socio.getEmail().length() != 0)
			return true;
		else {
			JOptionPane error = new JOptionPane();
			error.showMessageDialog(null, "Faltan campos por rellenar", "Error", JOptionPane.ERROR_MESSAGE);
			return false;
		}
	}

	public boolean anadirSocio(Socio socio) throws DAOExcepcion {
		daoSocio.anadirSocio(socio);
		return true;
	}
	
	public boolean actualizarSocio(Socio socio) throws DAOExcepcion {
		daoSocio.actualizarSocio(socio);
		return true;
	}

	// comprobar si el socio existe
	public boolean comprobarSocio(String esncard) throws DAOExcepcion {
		listaSocios = daoSocio.recuperarSocio(esncard);
		if (listaSocios.size() != 0) {
			return true;
		}		
		return false;
	}
	
	// recuperar una lista de socios desde daoSocio 
	public Socio recuperarSocio(String esncard) throws DAOExcepcion {
		listaSocios = daoSocio.recuperarSocio(esncard);
		Socio socio = new Socio();
		Iterator it = listaSocios.iterator();
		while (it.hasNext()) {
			socio = (Socio) it.next();
		}		
		return socio;
	}
	
	public ArrayList recuperarSocios() throws DAOExcepcion {
		listaSocios = daoSocio.ListarSocios();	
		return listaSocios;
	}
	
	public boolean eliminarSocio(Socio socio) throws DAOExcepcion {
		daoSocio.eliminarSocio(socio);
		return true;
	}
	
}
